import { observe } from "./observe/index";

export function initState(vm) {
    const opt = vm.$options;
    if (opt.data) {
        initData(vm)
    }
}


function proxy(vm,target,key){
    // 数据劫持
    Object.defineProperty(vm,key,{
        get(){
            return vm[target][key] // vm._data.name
        },
        set(newValue){
            vm[target][key]=newValue
        }
    })
}
function initData(vm) {
    let data = vm.$options.data
    data = typeof data === 'function' ? data.call(this) : data
    console.log(data)
    vm._data = data; // 我将返回的对象放到了_data上
    observe(data)

    for(let key in data){
        proxy(vm,'_data',key)
    }

}